package com.hnust.service;

import com.hnust.domain.*;
import com.jfoenix.controls.JFXButton;
import com.jfoenix.controls.JFXCheckBox;
import javafx.collections.ObservableList;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;

import java.io.File;


public interface SubjectServices {

    void getCourseData(Label courseDataLabel, ComboBox<CourseData> comb, int selectedCourseIndex, String course_id);

    void downloadFile(JFXButton downloadBtn);

    void uploadFile(File file, JFXButton uploadBtn, String selectCourseId, TableView<BulkImport> tableSize, VBox form, VBox loadingUploadInfo, HBox btnGroupInfo, ObservableList<BulkImport> observableList, JFXCheckBox cb);

    void addSub(JFXButton allImportBtn, SubjectDataListReq subjectDataListReq);

    void getCourseSub(int currentPage, Integer rows, String keyword, JFXButton loading, String selectedCourseId, VBox loadingSubjectInfo, VBox subjectsContainer);

    void getCourseChapterList(Label chapterLabel, ComboBox<CourseChapter> chapterComb,String id,String chapter_id);

    void getCourseTargetRecord(Label targetLabel, String id, ComboBox<CourseTargetRecord> targetComb, String courseTargetId);

    void getQuesTypeList(Label queTypeLabel, ComboBox<QuestionTypeRecord> questionTypeComb, String type_id);

    void modifySubject(SubjectDataInfo subjectDataInfo, TextField knowledgePoint);

    void updateSubInfo(SubjectDataReq subjectDataReq, JFXButton loading);
}
